home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 42 / Amiga Format AFCD42 (Issue 126, Aug 1999).iso / -serious- / comms / other / slrn / slrn_src / src / server.h < prev    next >
C/C++ Source or Header  |  1999-05-14  |  3KB  |  114 lines

  1. #ifndef _SLRN_SERVER_H
  2. #define _SLRN_SERVER_H
  3. /* Copyright (c) 1998 John E. Davis (davis@space.mit.edu)
  4.  *
  5.  * This file is part of slrn.
  6.  *
  7.  * Slrn is free software; you can redistribute it and/or modify it
  8.  * under the terms of the GNU General Public License as published by the
  9.  * Free Software Foundation; either version 2, or (at your option) any
  10.  * later version.
  11.  * 
  12.  * Slrn is distributed in the hope that it will be useful, but WITHOUT
  13.  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  14.  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  15.  * for more details.
  16.  * 
  17.  * You should have received a copy of the GNU General Public License
  18.  * along with Slrn; see the file COPYING.  If not, write to the Free
  19.  * Software Foundation, 59 Temple Place - Suite 330, 
  20.  * Boston, MA  02111-1307, USA.
  21.  */
  22.  
  23.  
  24. #include "nntpcodes.h"
  25.  
  26. typedef struct 
  27. {
  28.    int (*po_start)(void);
  29.    int (*po_end)(void);
  30.    int (*po_printf)(char *, ...);
  31.    int (*po_puts)(char *);
  32.    int po_can_post;
  33. } Slrn_Post_Obj_Type;
  34.  
  35. typedef struct 
  36. {
  37.    int (*sv_select_group) (char *, int *, int *);
  38.    char *(*sv_read_line) (char *, unsigned int);
  39.    void (*sv_close) (void);
  40.    /* sv_reset is somewhat like sv_close except that it only puts the
  41.     * server in a state where the server can be given additional commands.
  42.     */
  43.    void (*sv_reset)(void);
  44.    int (*sv_initialize) (void);
  45.    int (*sv_select_article) (int, char *);
  46.    int (*sv_put_server_cmd) (char *, char *, unsigned int);
  47.    int (*sv_xpat_cmd) (char *, int, int, char *);
  48.  
  49.    int (*sv_xhdr_command) (char *, int, char *, unsigned int);
  50.    int (*sv_xgtitle_cmd) (char *);
  51.  
  52.    int (*sv_has_cmd) (char *);
  53.    int (*sv_list_newsgroups) (void);
  54.    int (*sv_list_active) (void);
  55.  
  56.    int sv_has_xover;
  57.    int sv_reset_has_xover;
  58.    /* if non-zero, sv_has_xover is set to 1 when entering a group.  
  59.     * This is because some servers support XOVER but do not have overview
  60.     * files for all groups.  See xover.c
  61.     */
  62.    int (*sv_nntp_xover) (int, int);
  63.    int (*sv_nntp_head) (int, char *, int *);
  64.    int (*sv_nntp_next) (int *);
  65.    char *sv_name;
  66.    
  67. Slrn_Server_Obj_Type;
  68.  
  69. extern Slrn_Server_Obj_Type *Slrn_Server_Obj;
  70. extern Slrn_Post_Obj_Type *Slrn_Post_Obj;
  71.  
  72. extern int Slrn_Server_Min, Slrn_Server_Max;
  73. extern char *Slrn_Current_Group_Name;
  74.  
  75. #if SLRN_HAS_NNTP_SUPPORT
  76. extern int Slrn_Query_Reconnect;
  77. extern char *Slrn_NNTP_Server_Name;
  78. #endif
  79.  
  80. #if SLRN_HAS_INEWS_SUPPORT
  81. extern char *Slrn_Inews_Pgm;
  82. #endif
  83.  
  84. extern char *slrn_map_object_id_to_name (int, int);
  85. extern int slrn_map_name_to_object_id (int, char *);
  86.  
  87. extern int slrn_init_objects (void);
  88. extern int slrn_select_post_object (int);
  89. extern int slrn_select_server_object (int);
  90. extern int slrn_parse_object_args (char *, char **, int);
  91.  
  92. extern char *slrn_getserverbyfile(char *);
  93.  
  94. #if SLRN_HAS_SPOOL_SUPPORT
  95. extern char *Slrn_Inn_Root;
  96. extern char *Slrn_Spool_Root;
  97. extern char *Slrn_Nov_Root;
  98. extern char *Slrn_Nov_File;
  99. extern char *Slrn_Active_File;
  100. extern char *Slrn_ActiveTimes_File;
  101. extern char *Slrn_Newsgroups_File;
  102. extern int Slrn_Spool_Check_Up_On_Nov;
  103. #endif
  104.  
  105. #if SLRN_HAS_PULL_SUPPORT
  106. extern int Slrn_Use_Pull_Post;
  107. #endif
  108.  
  109. extern int Slrn_Server_Id;
  110. extern int Slrn_Post_Id;
  111.  
  112. #endif                       /* SLRN_SERVER_H */
  113.